package com.xxzb.pack0824.线程池;

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

/**
 * 执行周期性任务的线程池
 */
public class ScheduledThreadPoolDemo {
    public static void main(String[] args) {
        ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
        //指定延迟执行线程任务，单次执行
//        scheduledExecutorService.schedule(new ThreadPoolTask1(),10, TimeUnit.SECONDS);
        /**
         * 使用周期执行线程任务
         * 参数1:线程任务，只支持Runnable线程任务
         * 参数2：延迟时间，第一次执行线程任务的延迟时间，0或负数表示无延迟
         * 参数3：周期执行的间隔时间
         * 参数4：时间单位
         */

        //每隔3秒执行一次，类似于定时器那种
        scheduledExecutorService.scheduleAtFixedRate(
                ()->{
                    System.out.println(Thread.currentThread().getName()+":执行一次...");
                }
                ,
                0,
                3,
                TimeUnit.SECONDS);

    }
}
